package com.ruoyi.project.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 项目基本信息对象 pro_project
 * 
 * @author phil
 * @date 2020-05-28
 */
public class ProProject extends BaseEntity{
	private static final long serialVersionUID = 1L;

	/** 项目Id */
	private Long projectId;

	/** web号 */
	@Excel(name = "WBS号")
	private String WBSNo;

	/** 项目编号 */
	@Excel(name = "项目编号")
	private String projectNo;

	/** 项目名称 */
	@Excel(name = "项目名称")
	private String projectName;

	/** 项目状态 */
	@Excel(name = "项目状态", readConverterExp = "6=已验收,7=技术关闭,5=待验收,3=已上线,2=在执行,1=前期立项,0=创建")
	private String status;

	/** 项目类型 */
	@Excel(name = "项目类型", readConverterExp = "1=咨询/技术服务项目,2=研发项目,3=实施项目,4=研发实施项目,5=系统集成类项目,6=集采及简单贸易类项目,7=综合运维项目,8=生产制造项目,9=运营类项目")
	private String proTypeId;

	/** 项目经理 */
	private Long pmId;

	/** 项目经理 */
	@Excel(name = "项目经理")
	private String pmName;

	/** 联系方式 */
	@Excel(name = "联系方式", type = Excel.Type.IMPORT)
	private String pmPhone;

	/** 所属部门Id */
	private Long deptId;

	/** 部门名称 */
	@Excel(name = "所属部门")
	private String deptName;

	/** 项目年度 */
	@Excel(name = "项目年度")
	private Integer proYear;

	/** 收入预算 */
	@Excel(name = "收入预算")
	private String income;

	/** 成本预算 */
	@Excel(name = "成本预算")
	private String expenditure;

	/** 采购预算 */
	@Excel(name = "采购预算")
	private String procurement;

	/** 毛利率 */
	@Excel(name = "毛利率")
	private Double grossMargin;

	/** 外包比例 */
	@Excel(name = "外包比例")
	private Double outsourcingRatio;

	/** 当前里程碑名称（第一版暂时不用,第二版可在里程碑变更之后,同步修改） */
	private String currentProcessName;

	public void setProjectId(Long projectId){
		this.projectId = projectId;
	}

	public Long getProjectId(){
		return projectId;
	}

	public void setProjectName(String projectName){
		this.projectName = projectName;
	}

	public String getProjectName(){
		return projectName;
	}

	public void setProjectNo(String projectNo){
		this.projectNo = projectNo;
	}

	public String getProjectNo(){
		return projectNo;
	}

	public void setWBSNo(String WBSNo){
		this.WBSNo = WBSNo;
	}

	public String getWBSNo(){
		return WBSNo;
	}

	public void setStatus(String status){
		this.status = status;
	}

	public String getStatus(){
		return status;
	}

	public void setProTypeId(String proTypeId){
		this.proTypeId = proTypeId;
	}

	public String getProTypeId(){
		return proTypeId;
	}

	public void setPmId(Long pmId){
		this.pmId = pmId;
	}

	public Long getPmId(){
		return pmId;
	}

	public void setDeptId(Long deptId){
		this.deptId = deptId;
	}

	public Long getDeptId(){
		return deptId;
	}

	public void setDeptName(String deptName){
		this.deptName = deptName;
	}

	public String getDeptName(){
		return deptName;
	}

	public void setProYear(Integer proYear){
		this.proYear = proYear;
	}

	public Integer getProYear(){
		return proYear;
	}

	public String getIncome(){
		return income;
	}

	public void setIncome(String income){
		this.income = income;
	}

	public String getExpenditure(){
		return expenditure;
	}

	public void setExpenditure(String expenditure){
		this.expenditure = expenditure;
	}

	public String getProcurement(){
		return procurement;
	}

	public void setProcurement(String procurement){
		this.procurement = procurement;
	}

	public void setGrossMargin(Double grossMargin){
		this.grossMargin = grossMargin;
	}

	public Double getGrossMargin(){
		return grossMargin;
	}

	public void setOutsourcingRatio(Double outsourcingRatio){
		this.outsourcingRatio = outsourcingRatio;
	}

	public Double getOutsourcingRatio(){
		return outsourcingRatio;
	}

	public void setCurrentProcessName(String currentProcessName){
		this.currentProcessName = currentProcessName;
	}

	public String getCurrentProcessName(){
		return currentProcessName;
	}

	public String getPmName(){
		return pmName;
	}

	public void setPmName(String pmName){
		this.pmName = pmName;
	}

	public String getPmPhone(){
		return pmPhone;
	}

	public void setPmPhone(String pmPhone){
		this.pmPhone = pmPhone;
	}

	@Override
	public String toString(){
		try{
			return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("projectId", getProjectId()).append("projectName", getProjectName()).append("projectNo", getProjectNo()).append("WBSNo", getWBSNo()).append("status", getStatus())
					.append("proTypeId", getProTypeId()).append("pmId", getPmId()).append("pmName", getPmName()).append("deptId", getDeptId()).append("deptName", getDeptName()).append("proYear", getProYear()).append("income", getIncome())
					.append("expenditure", getExpenditure()).append("procurement", getProcurement()).append("grossMargin", getGrossMargin()).append("outsourcingRatio", getOutsourcingRatio()).append("createBy", getCreateBy())
					.append("createTime", getCreateTime()).append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime()).append("remark", getRemark()).append("currentProcessName", getCurrentProcessName()).toString();
		}catch(Exception e){
			e.printStackTrace();
			return "";
		}
	}
}
